#include<iostream>
#include<random>
#include<sstream>
#include<iomanip>
#include<atomic>
int main()
{

std::random_device rd;
//机器随机数作为种子不过低效。
std::mt19937_64 gernator(rd());//用梅森旋转算法生成一个伪随机数
//数字很大，可以限定（相当于取模）
//生成8个0-255之间的数字，要限定数字区间
std::uniform_int_distribution<int> distribution(0,255);
std::cout<<distribution(gernator)<<std::endl;
//然后将生成的数字转换为16进制的数字字符
std::stringstream ss;
for(int i=0;i<8;i++)
{
    ss<<std::setw(2)<<std::setfill('0')<<std::hex<<distribution(gernator);
     if(i==3||i==5||i==7)
     ss<<"-";
}

static std::atomic<size_t>seq(1);
size_t num=seq.fetch_add(1);
for(int i=7;i>=0;i--)
{
    ss<<std::setw(2)<<std::setfill('0')<<std::hex<<((num>>(i*8))&0xff);
    if(i==6)
    ss<<"-";
}
std::cout<<ss.str()<<std::endl;
return 0;
}